トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     テキストフィールドの改行コードと挙動の関係
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
hjhstyhjh
Åê¹ÆNo.38963
投稿日時: 2008-5-25 17:49
新米
居住地:
投稿: 2
使用環境:
WinXP,Flash CS3Pro
テキストフィールドの改行コードと挙動の関係
はじめての投稿です。
よろしくお願いします。

現在、業務にて他社作成のCGIが吐いたXMLを表示するFLASHの作成を行っています。
XMLをパースしてインタラクションに応じてテキストフィールドに表示する処理をしているのですが、詳細は本題から外れるので割愛します。

所定の表示領域を超える文字数を表示する場合、テキストフィールドをスクロールさせる処理を実装しているのですが、全角800文字程度でもスクロールの挙動が大変遅くなりました。
全体の処理の軽減化や、テキストフィールドを含むMCをcacheAsBitmapするなどの解決策を試みたのですが、一向に改善しません。

試しに、ダミーのテキスト全角2000文字程度をテキストフィールドに出力させてみたところ問題なく軽快に動作しました。これは、と思いXMLから引っ張ってきたテキストの改行文字を全て削除すると軽快に動作します。

ただ、この状態では本来表示されるべき文字情報のままではないのでデバッグを繰り返した結果、

・挙動が遅くなる原因がテキストフィールド内テキストの改行コードが「\n」であることが判明し
・すべて「\r」に変換することで解決しました


ということで、以上、質問ではなく解決報告です。
あまり聞いたこととない現象だったので(メモがわりに)初めて書き込みさせていただきました。

ではでは。
野中文雄
Åê¹ÆNo.38967
投稿日時: 2008-5-25 19:26
ちょんまげら
居住地: 東京
投稿: 4247
使用環境:
CS4 .4.11 Vista Home Premium (SP1)
Re: テキストフィールドの改行コードと挙動の関係
こういう投稿は、フォーラムにとってとても価値がありますね。

FlashのTextFieldインスタンスは、改行コードを内部的には(OSにかかわらず)"\r"で処理しているようです。もっとも、それが処理速度に影響するという報告は初めて聞きました。大変参考になりました。
引用:
hjhstyhjhさんは書きました:
・挙動が遅くなる原因がテキストフィールド内テキストの改行コードが「\n」であることが判明し
・すべて「\r」に変換することで解決しました


----------------
 

hjhstyhjh
Åê¹ÆNo.38968
投稿日時: 2008-5-25 21:33
新米
居住地:
投稿: 2
使用環境:
WinXP,Flash CS3Pro
Re: テキストフィールドの改行コードと挙動の関係
野中さま
ご返信ありがとうございます。


var testTxt = new String();
//全角2万文字と改行コード「\n」2千文字
for(var i:Number=1 ;i<=2000; i++){ 
	testTxt += "あかさたなはまやらわ\n";
}


var testTxt = new String();
//全角2万文字と改行コード「\r」2千文字
for(var i:Number=1 ;i<=2000; i++){ 
	testTxt += "あかさたなはまやらわ\r";
}


例えば、上記にてtestTxtをテキストフィールドに表示させ、スクロールバーでコントロールしてみると挙動の違いが明白ですね。
cacheAsBitmapのtrue/falseの違いよりも挙動にあたえる影響が大きいようにも思えます。

長文の日本語テキスト表示時のコマ落ちなど、本現象に気がついていないままコンテンツが公開されているケースが多数ありそうな気もします。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops